package com.xiaobawang.knowledge.spider.util;

import java.util.UUID;

/**
 * @description UUID工具类
 * @author 18101119
 * @date 2024/10/18 9:09
 * @email songxinhang2023@e-chinalife.com
 * @id 18101119
 * @phone 13001321080
 */
public class UUIDUtil {

    private UUIDUtil() {
        throw new IllegalStateException("Utility class");
    }

    /**
     * 生成标准的36位UUID字符串（包括4个连字符）。
     * @return 标准的36位UUID字符串。
     */
    public static String generateStandardUUID() {
        return UUID.randomUUID().toString();
    }

    /**
     * 生成32位无连字符的UUID字符串。
     * @return 32位无连字符的UUID字符串。
     */
    public static String generate32BitUUID() {
        return UUID.randomUUID().toString().replace("-", "");
    }

    /**
     * 生成指定长度的UUID字符串。
     * 如果指定长度大于32位，则返回32位无连字符的UUID。
     * 如果指定长度小于32位，则返回指定长度的前缀。
     * @param length 指定长度。
     * @return 指定长度的UUID字符串。
     */
    public static String generateUUID(int length) {
        String uuid = generate32BitUUID();
        if (length >= 32) {
            return uuid;
        } else {
            return uuid.substring(0, Math.min(length, uuid.length()));
        }
    }
}